package com.stx.jeepay.manager.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.stx.jeepay.core.entity.SysRoleEntRelaEntity;
import com.stx.jeepay.core.model.ApiPageRes;
import com.stx.jeepay.core.model.ApiRes;
import com.stx.jeepay.core.service.SysRoleEntRelaService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Api(tags = "系统管理（用户-角色-权限关联信息）")
@RestController
@RequestMapping("api/sysRoleEntRelas")
public class SysRoleEntRelaController extends CommonCtrl {
    @Autowired
    private SysRoleEntRelaService sysRoleEntRelaService;

    @ApiOperation("关联关系--角色-权限关联信息列表")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "iToken", value = "用户身份凭证", required = true, paramType = "header"),
            @ApiImplicitParam(name = "pageNumber", value = "分页页码", dataType = "int", defaultValue = "1"),
            @ApiImplicitParam(name = "pageSize", value = "分页条数（-1时查全部数据）", dataType = "int", defaultValue = "20"),
            @ApiImplicitParam(name = "roleId", value = "角色ID, ROLE_开头")
    })
    @PreAuthorize("hasAnyAuthority( 'ENT_UR_ROLE_ADD', 'ENT_UR_ROLE_DIST' )")
    @GetMapping("")
    public ApiPageRes<SysRoleEntRelaEntity> list(){
        SysRoleEntRelaEntity queryObject = getObject(SysRoleEntRelaEntity.class);

        LambdaQueryWrapper<SysRoleEntRelaEntity> queryWrapper = new LambdaQueryWrapper<>();

        if(queryObject.getRoleId() != null){
            queryWrapper.eq(SysRoleEntRelaEntity::getRoleId,queryObject.getRoleId());
        }

        IPage<SysRoleEntRelaEntity> pages = sysRoleEntRelaService.page(getIPage(true), queryWrapper);

        return ApiPageRes.pages(pages);
    }
}
